51f5955c5712b5a5d2ad90d7234056d96d89ead7,src/main/java/org/highj/data/impl/treeMap/Node.java,Node,deleteEQ,#Ord#K#,346
Before Change
}
private Node<K, V> deleteEQ(Ord<? super K> ord, K k) {
if (color == RED && left.isEmpty() && right.isEmpty()) {
return empty();
} else if (!left.isEmpty() && left.color == RED) {
Node<K, V> newRight = new Node<>(RED, bHeight, key, value, left.right, right).delete_(ord, k);
return balanceR(color, bHeight, left.key, left.value, left.left, newRight);
} else if (color == RED) {
T2<K, V> m = right.minimum();
if (right.isBlackLeftBlack()) {
if (left.isBlackLeftRed()) {
Node<K, V> newRightRight = right.turn(RED).deleteMin_();
Node<K, V> newRight = balanceR(BLACK, left.bHeight, m._1(), m._2(), left.right, newRightRight);
return balanceR(RED, bHeight, left.key, left.value, left.left.turn(BLACK), newRight);
}
return balanceR(BLACK, bHeight - 1, m._1(), m._2(), left.turn(RED), right.turn(RED).deleteMin_());
}
Node<K, V> newRight = new Node<>(BLACK, right.bHeight, right.key, right.value, right.left.deleteMin_(), right.right);
return new Node<>(RED, bHeight, m._1(), m._2(), left, newRight);
}
throw new AssertionError("deleteEQ");
}
After Change
return balanceR(BLACK, bHeight - 1, m._1(), m._2(), left.turn(RED), right.turn(RED).deleteMin_());
}
Node<K, V> newRight = black(right.bHeight, right.key, right.value, right.left.deleteMin_(), right.right);
return red(bHeight, m._1(), m._2(), left, newRight);
}
throw new AssertionError("deleteEQ");
}